package com.day9_Map_test;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/**
 * @ClassName: for_i_map
 * @Author: zw
 * @Description: 出百万拳，行万里路；
 * @Create 2024/3/10-09:33
 * @Version 1.0
 */
public class for_i_map {
    // 遍历map集合
    public static void main(String[] args) {

        Map<String, String> map = new HashMap<String, String>();
        map.put("01", "zw");
        map.put("02", "zw1");
        map.put("03", "z21");
        map.put("01", "zw01");
        forEach1(map);
        forEach2(map);



    }
    /**
     * 方式1
     * 遍历思路 把map看作多个夫妻对的集合
     * 1. 把所有丈夫集中起来-- 用keySet 获取 键的集合
     * 2. 遍历丈夫的集合，获取每个丈夫-- 遍历（Set）每个丈夫
     * 3. 根据丈夫找到对应的妻子--用map.get(key) 找到对应的妻子（value）
     *
     */
    public static void forEach1(Map<String,String> map){
        System.out.println("方式1---");
        Set<String> s = map.keySet();
        Iterator<String> it = s.iterator();
        while (it.hasNext()) {
            String key = it.next();
            String value = map.get(key);
            System.out.println(value);

        }
    }

    /**
     * 方式2 把map看作多个夫妻对的集合
     * 1. 获取所有结婚证的集合-- 获取map所有键值对 对象的集合， 使用entrySet（）
     * 2. 遍历结婚证集合，得到每个结婚证 -- 遍历增强for循环
     * 3. 根据结婚证获取丈夫和妻子 -- 根据键值对对象 getKey获取键， getValue 获取值
     */
    public static void forEach2(Map<String, String> map) {
        System.out.println("方式2--");
        Set<Map.Entry<String, String>> entries = map.entrySet();
        // System.out.println(entries);
        for (Map.Entry<String, String> i : entries) {
            System.out.println(i.getKey());
            System.out.println(i.getValue());

        }
    }
}

